using Drill.Extensibility;

namespace Drill.Configuration
{
	/// <summary>
	/// Represents configuration data for dependency resolver configuration sources.
	/// </summary>
	public class DrillBitConfiguration : object, IDrillBitConfiguration
	{
		/// <summary>
		/// Gets the collection of configuration sources for a dependency resolver config item.
		/// </summary>
		/// <value>The collection of configuration sources for a dependency resolver config item.</value>
		public IConfigSourceConfigurationCollection ConfigurationSources { get; set; }

		/// <summary>
		/// Gets a value indicating whether this <see cref="DrillBitConfiguration"/> is enabled.
		/// </summary>
		/// <value><c>true</c> if enabled; otherwise, <c>false</c>.</value>
		public bool Enabled { get; set; }

		/// <summary>
		/// Gets the name of the dependency resolver.
		/// </summary>
		/// <value>The name of the dependency resolver.</value>
		public string Name { get; set; }

		/// <summary>
		/// Gets the assembly-qualified type name of the concrete type that is configured as a dependency resolver.
		/// The type must implement either the <see cref="IDrillBit"/> or <see cref="IDependencyResolver"/> interface.
		/// </summary>
		/// <value>The assembly-qualified type name of the concrete type that is configured as a dependency resolver.</value>
		public string Type { get; set; }
	}
}